Unterstützte Datentypen (in ST)

Sie können folgende Datentypen in Ihrer Anwendung verwenden:

Anwenderdefinierte Datentypen

Ein →anwenderdefinierter Datentyp ist ein →Datentyp, den Sie selbst deklariert haben. Informieren Sie sich unter:

Elementare Datentypen

Neuron Power Engineer unterstützt folgende elementare Datentypen:

Datentyp (= →Schlüsselwort)

Beschreibung

I: Standard-→Initialisierungswert

U: Untergrenze

O: Obergrenze

BOOL

boolesche  

I: 0 oder FALSE

U: wie Standard-Initialisierungswert (I)

O: 1 oder TRUE

SINT

kurze ganze Zahl (short integer)

I: 0

U: -128 (1)

O: 127 (1)

INT

ganze Zahl (→Integer)

I: 0

U: -32_768 (1) (2)

O: 32_767 (1)

DINT

doppelte ganze Zahl (double integer)

I: 0

U: -2_147_483_648 (1) (2)

O: 2_147_483_647 (1)

LINT

lange ganze Zahl (long integer)

I: 0

U: -9_223_372_036_854_775_808 (1) (2)

O: 9_223_372_036_854_775_807 (1)

USINT

vorzeichenlose kurze ganze Zahl (unsigned short integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 255 (1)

UINT

vorzeichenlose ganze Zahl (→Unsigned Integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 65_535 (1) (2)

UDINT

vorzeichenlose doppelte ganze Zahl (unsigned double integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 4_294_967_295 (1) (2)

ULINT

vorzeichenlose lange ganze Zahl (unsigned long integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 18_446_744_073_709_551_615 (1) (2)

REAL

 

reelle Zahl (3)

reelle Zahl (3)

 

I:  0.0

U: -3.402_823_466e+38 (1) (2) (4)

O: 3.402_823_466e+38 (1) (4)

Werte im Bereich von -1.4e-45 bis 1.4e-45 können von Neuron Power Engineer nicht verarbeitet werden (Ausnahme: 0.0 wird verarbeitet). Solche Werte ergeben einen →Unterlauf.

LREAL

 

→lange reelle Zahl (3)

→lange reelle Zahl (3)

 

 

I: 0.0

U: -1.797_693_134_862_315_7e+308 (1) (2) (4)

O: 1.797_693_134_862_315_7e+308 (1) (4)

Werte im Bereich von -4.9e-324 bis 4.9e-324 können von Neuron Power Engineer nicht verarbeitet werden (Ausnahme: 0.0 wird verarbeitet). Solche Werte ergeben einen →Unterlauf.

TIME

Zeitdauer

I:  T#0s

U: T#-89_468_321d19h42m34s400ms (2) (entspricht -7730063005354.4s)

O: T#89_468_321d19h42m34s400ms (6) (entspricht 7730063005354.4s)

DATE

(nur) Datum

I: DATE#1970-01-01 (7)

U: wie Standard-Initialisierungswert (I)

O: DATE#246_925-12-11 (6)  (7)

TIME_OF_DAY oder TOD

(nur) Uhrzeit

I: TOD#00:00:00 (5)

U: wie Standard-Initialisierungswert (I)

O: TOD#23:59:59.999_000_000 (2) (5) (6)

DATE_AND_TIME oder DT

Datum und Uhrzeit

I: DT#1970-01-01-00:00:00.000_000_000 (2) (5) (7) 

U: wie Standard-Initialisierungswert (I)

O: DT#246_925-12-11-19:42:34.400  (5) (6) (7) 

STRING

Einzel-Byte-→Zeichenfolge mit variabler Länge

I: '' (leer)

keine Unter-/Obergrenze, da beliebige Zeichenfolge möglich ist

CHAR

Einzel-Byte-Zeichen

I: '$00' (entsprechend dem Dezimalwert 0 im ANSI-C-Zeichensatz) (8)  

U: wie Standard-Initialisierungswert (I)

O: '$FF' (entsprechend dem ÿ-Zeichen bzw. dem Dezimalwert 255 im ANSI-C-Zeichensatz) (8)

BYTE

→Bitfolge der Länge 8

I: 16#00

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FF (1)

WORD

Bitfolge der Länge 16

I: 16#0000

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FFFF (1)

DWORD

Bitfolge der Länge 32

I: 16#0000_0000 (2)

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FFFF_FFFF (1)

LWORD

Bitfolge der Länge 64

I: 16#0000_0000_0000_0000 (2)

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FFFF_FFFF_FFFF_FFFF (1)

Hinweise:
(1) Bei diesem Datentyp ist es möglich, die Untergrenze (U) oder Obergrenze (O) mit Hilfe der Begriffe MIN oder MAX zuzuweisen – siehe FAQ-Artikel: "Wie wird der Minimalwert oder Maximalwert eines Datentyps zugewiesen?"

(2) Das einzelne Unterstrich-Zeichen _ ist zur besseren Lesbarkeit als Trennzeichen für Werte eingefügt, _ ist für die Werte nicht signifikant. Werte mit _ werden von Neuron Power Engineer korrekt interpretiert.

(3) Ungenauigkeiten bei Gleitkommazahlen (betrifft die Datentypen REAL und LREAL):

Aufgrund der internen Darstellung von Gleitkommazahlen können sich Ungenauigkeiten bei der Verarbeitung von REAL- und LREAL-Werten ergeben. Diese Ungenauigkeiten können bewirken, dass Operationen mit solchen Werten zu einem nicht erwarteten Ergebnis führen. Dies betrifft auch Systembausteine, die - REAL und/oder LREAL-Werte verarbeiten.

(4) REAL-Werte werden intern als "Float-Wert" und LREAL-Werte als "Double-Werte" verwaltet

Das IEEE-Float-Format sieht für die Darstellung folgende Bestimmungen vor:

REAL

24-Bit-Mantisse
Durch die 24-Bit-Mantisse für REAL-Werte sind 6 Stellen des Werts signifikant. Da sich die 7. Stelle in den meisten Fällen ebenfalls noch – jedoch nicht immer – auf den Rundungswert auswirkt, werden 6 Stellen in jedem Fall als signifikant vorgegeben.

LREAL

53-Bit-Mantisse
Durch die 53-Bit-Mantisse für LREAL-Werte sind 15 Stellen signifikant.

Bei Verwendung eines →Controllino oder →Arduino Nano als SPS vermeiden Sie die Verwendung von Bausteinen/Variablen, die LREAL-Werte verarbeiten/liefern. Details: siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen".

(5) Werte für TIME_OF_DAY und DATE_AND_TIME sind Zeitangaben in der koordinierten Weltzeit (UTC = Coordinated Universal Time) – unabhängig von dem Zielsystem, das Sie verwenden. Eine Liste über die Zeitzonen pro Land (= Abweichung von UTC) finden Sie z.B. unter http://en.wikipedia.org/wiki/List_of_time_zones_by_country (Stand: 29. Juli 2012). Die Sommerzeit ist in der Liste nicht berücksichtigt. Beispiel: UTC+1 = Ortszeit Berlin (Deutschland), Paris (Frankreich), Rom (Italien) oder Wien (Österreich). Bei einer UTC-Zeit von 13:52 ergibt sich also eine Ortszeit 14:52 (Winterzeit) für z.B. Berlin, Paris, Rom oder Wien.

(6) Der Wertbereich und die Auflösung für TIME, DATETIME_OF_DAY und DATE_AND_TIME ist abhängig von der eingesetzten →SPS. Daher ist der angegebene Wert für die Obergrenze ein Annäherungswert. Die tatsächliche Obergrenze für Ihre Anwendung kann jedoch von diesem Wert abweichen.  Siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen".

(7) Die Untergrenze für DATE bzw. DATE_AND_TIME ist für Literale gültig. Aufgrund von Berechnungen oder Konvertierungen kann Neuron Power Engineer Werte bis zu DATE#0001-01-01 bzw. DT#0001-01-01-00:00:00.000_000_000 verarbeiten und darstellen. Werte < DATE#0001-01-01 bzw. DT#0001-01-01-00:00:00.000_000_000 werden in Sekunden im Format OVF(number) angezeigt, und zwar relativ zu DATE#1970-01-01 bzw. DT#1970-01-01-00:00:00.000_000_000.

8 Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($) und gefolgt von 2 Hexadezimal-Ziffern, werden in Neuron Power Engineer als entsprechendes Zeichen des ANSI-C-Zeichensatzes interpretiert.

Auf diese Weise können Sie Sonderzeichen, wie z.B. Umlaute, für Einzel-Byte-Zeichenfolgen eingeben. Derzeit werden solche Sonderzeichen in Neuron Power Engineer (z.B. in der Sicht Variablenwerte) jedoch so ausgegeben, wie sie eingegeben wurden.
Hier eine Auswahl an Sonderzeichen (eine Liste von Sonderzeichen und der entsprechenden Hexadezimal-Ziffernfinden Sie unter https://www.ascii-code.com/):

Dezimalwert

Hexadezimal-Ziffer

Einzugeben

Sonderzeichen

128

80

$80

163

A3

$A3

£

169

A9

$A9

©

174

AE

$AE

®

177

B1

$B1

±

178

B2

$B2

² (hochgestellte Ziffer "2")

179

B3

$B3

³ (hochgestellte Ziffer "3")

188

BC

$BC

¼

189

BD

$BD

½

190

BE

$BE

¾

196

C4

$C4

Ä

214

D6

$D6

Ö

220

DC

$DC

Ü

223

DF

$DF

ß

228

E4

$E4

ä

246

F6

$F6

ö

252

FC

$FC

ü

Falls die Zeichenkombination '$00' einem einzelnen Zeichen einer STRING-Variable zugewiesen wird, endet die Zeichenfolge der STRING-Variable an dieser Position. Solche Zeichenfolge werden auch in der Sicht Variablenwerte bei $00 beendet.
In Zuweisungen wird jedoch die vollständige Zeichenfolge übernommen. So ist es möglich, dass die Sicht Variablenwerte einzelne Zeichen hinter $00 darstellt, falls Sie auf zugewiesenen Zeichen hinter $00 zugreifen.

Systemdatentypen

Siehe "Systemdatentypen für die Anwendung".